#!/bin/bash

#La variable de entorno que contiene el "grupoXX" es $grupo (con minusculas)
GRUPO=$grupo

origen=$1
destino=$2
comando=$3

function NumeroSecuencia(){

	num_sec=1

	for arch in $1; do
		if [ -f "$arch" ]; then

		#posicion de la ultima /
		ultima_barra_aux=`expr match "$arch" '.*/'`
		ultimo_punto=`expr match "$arch" '.*\.'`
		let "longitud=$ultimo_punto-$ultima_barra_aux-1"
		arch_aux=${arch:$ultima_barra_aux:$longitud}

		ultimo_punto_arch_origen=`expr match "$arch_origen" '.*\.'`
		arch_origen_aux=${arch_origen:0:$ultimo_punto_arch_origen}
		if [ "$arch_aux" == "$arch_origen" ]; then
			let "num_sec += 1"
		fi
			
		fi
	done
	echo $num_sec
}

if [ $origen ]&&[ $destino ]; then

        #posicion de la ultima /
        ultima_barra=`expr match "$origen" '.*/'`

        #longitud del string directorio+archivo
        long=`expr length "$origen"`

        #substring de 0 a ultima barra -> directorio
        dir_origen=${origen:0:$ultima_barra}

        #substring de ultima_barra+1 hasta el final -> archivo
        arch_origen=${origen:$ultima_barra:$long}

        if [ ! -e $dir_origen ]||[ ! -e $origen ]; then
		#si un comando llamo al mover, grabo en el log
		if [ $comando ]; then
			`$BINDIR/gralog.sh $comando "No existe la dirección $origen" "E"`
		fi
		exit 1
        fi

        #lo mismo para el directorio de destino
        ultima_barra=`expr match "$destino" '.*/'`
        dir_destino=${destino:0:$ultima_barra}

        if [ ! -e $dir_destino ]; then
		if [ $comando ]; then
                	`$BINDIR/gralog.sh $comando "No existe el directorio destino $dir_destino" "E"`
		fi
		exit 1
        fi

	#MOVER ESTANDAR
	if [ $dir_origen != $dir_destino ]&&[ ! -e $destino ]; then
		mv $origen $destino
		#rm $origen
		#si un comando llamo al mover, grabo en el log
		if [ $comando ]; then
			`$BINDIR/gralog.sh $comando "movimiento desde $origen hacia -> $destino" "I"`
		fi
		exit 0
	fi

	#MOVER DUPLICADO
	if [ $dir_origen != $dir_destino ]&&[ -e $destino ]; then
		#creo la carpeta dup si no existe
		if [ ! -e $dir_destino"dup" ]; then
			mkdir $dir_destino"dup" -m 777
		fi

		dir_destino_dup=$dir_destino"dup/*"
		num_sec=`NumeroSecuencia "$dir_destino_dup"`

		mv $origen $dir_destino"dup/"$arch_origen"."$num_sec
		if [ $comando ]; then
			`$BINDIR/gralog.sh $comando "movimiento duplicado realizado desde $origen hacia -> $destino" "I"`
		fi
		exit 0
	fi

	#MOVER COMO DUPLICADO
	if [ $dir_origen == $dir_destino ]; then
		#creo la carpeta dup si no existe
		if [ ! -e $dir_destino"dup" ]; then
			mkdir $dir_destino"dup" -m 777
		fi

		dir_destino_dup=$dir_destino"dup/*"
		num_sec=`NumeroSecuencia "$dir_destino_dup"`
		
		mv $origen $dir_destino"dup/"$arch_origen"."$num_sec
		if [ $comando ]; then
			`$BINDIR/gralog.sh $comando "movimiento como duplicado realizado desde $origen hacia -> $destino" "I"`
		fi
		exit 0
	fi

fi 
